Flash memory is an electronic (solid-state) non-volatile computer storage medium that can be electrically erased and reprogrammed. The NAND flash memory is a main type of flash memory named after the NAND logic gates, it has advantages of fast programming and short erasing time.
According to the number of levels, the NAND flash memories are divided into SLC flash memory (single-level cell), MLC memory (multi-level cell), TLC (triple-level cell) and QLC (quad-level cell). In the SLC flash memory, a unit may store one bit data while in the MLC flash memory, a unit may store two bits' data, and in the TLC flash memory a unit may store three bits' data.
When programming a flash unit, a voltage is applied to the control gate and an electric field is generated. Electrons passes through oxide of silicon barrier to achieve the floating gate due to the electric field. After passing, voltage applied to the control gate falls to zero. When erasing a flash unit, the voltage is applied to the silicon substrate.
SLC, MLC and TLC flash memories have the same MOSFET. The difference lies in, the SLC flash memory only has a program state and a non-program state, which are 0 and 1. A MLC flash memory unit stores two bits, thus it has four states 00, 01, 10 and 11. Each state corresponds a program voltage. A TLC flash memory unit stores three bits, thus it has eight states which are 000, 001, 010, 100, 011, 101, 110 and 111. To a QLC flash memory, there are more states which is not listed.
To the MLC, TLC and QLC NAND flash memories, the read margin of each state is very close. To take the MLC flash memory as an example, the 11 state is the Erase-state, 01 state is represented by A-state, 00 state is represented by B-state and 10 state is represented by C-state. During programming, the Erase-state bitlines are forced to be 2 volts while other states (A/B/C-state) bitlines are forced to be 0 volts.
To avoid over-programming, the initial program voltage (VPGM) of wordline of a NAND flash memory cannot be set too high, which is usually 12 volts. If the initial program goes beyond 12 volts, such as reaching 13 volts, the A and B states of bitline may be over-programmed. Therefore the program performance is lowered.